package com.ctsi.ssdc.domain;

import com.ctsi.ssdc.annotation.AutoId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.ZonedDateTime;

/**
 * @author ctsi-biyi-generator
*/
@ApiModel(description = "LitemallUser")
public class LitemallUser implements Serializable {
    /**
     * @Fields id 
     */
    @ApiModelProperty("")
    @AutoId(primaryKey = "id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Integer id;

    /**
     * @Fields username 用户名称
     */
    @ApiModelProperty("username")
    private String username;

    /**
     * @Fields password 用户密码
     */
    @ApiModelProperty("password")
    private String password;

    /**
     * @Fields gender 性别：0 未知， 1男， 1 女
     */
    @ApiModelProperty("gender")
    private Byte gender;

    /**
     * @Fields birthday 生日
     */
    @ApiModelProperty("birthday")
    private ZonedDateTime birthday;

    /**
     * @Fields lastLoginTime 最近一次登录时间
     */
    @ApiModelProperty("lastLoginTime")
    private ZonedDateTime lastLoginTime;

    /**
     * @Fields lastLoginIp 最近一次登录IP地址
     */
    @ApiModelProperty("lastLoginIp")
    private String lastLoginIp;

    /**
     * @Fields userLevel 0 普通用户，1 VIP用户，2 高级VIP用户
     */
    @ApiModelProperty("userLevel")
    private Byte userLevel;

    /**
     * @Fields nickname 用户昵称或网络名称
     */
    @ApiModelProperty("nickname")
    private String nickname;

    /**
     * @Fields mobile 用户手机号码
     */
    @ApiModelProperty("mobile")
    private String mobile;

    /**
     * @Fields avatar 用户头像图片
     */
    @ApiModelProperty("avatar")
    private String avatar;

    /**
     * @Fields weixinOpenid 微信登录openid
     */
    @ApiModelProperty("weixinOpenid")
    private String weixinOpenid;

    /**
     * @Fields sessionKey 微信登录会话KEY
     */
    @ApiModelProperty("sessionKey")
    private String sessionKey;

    /**
     * @Fields status 0 可用, 1 禁用, 2 注销
     */
    @ApiModelProperty("status")
    private Byte status;

    /**
     * @Fields addTime 创建时间
     */
    @ApiModelProperty("addTime")
    private ZonedDateTime addTime;

    /**
     * @Fields updateTime 更新时间
     */
    @ApiModelProperty("updateTime")
    private ZonedDateTime updateTime;

    /**
     * @Fields deleted 逻辑删除
     */
    @ApiModelProperty("deleted")
    private Boolean deleted;

    private static final long serialVersionUID = 1L;

    /** 
     * @return id 
     */
    public Integer getId() {
        return id;
    }

    /**
     * @param id 
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /** 
     * @return username 用户名称
     */
    public String getUsername() {
        return username;
    }

    /**
     * @param username 用户名称
     */
    public void setUsername(String username) {
        this.username = username == null ? null : username.trim();
    }

    /** 
     * @return password 用户密码
     */
    public String getPassword() {
        return password;
    }

    /**
     * @param password 用户密码
     */
    public void setPassword(String password) {
        this.password = password == null ? null : password.trim();
    }

    /** 
     * @return gender 性别：0 未知， 1男， 1 女
     */
    public Byte getGender() {
        return gender;
    }

    /**
     * @param gender 性别：0 未知， 1男， 1 女
     */
    public void setGender(Byte gender) {
        this.gender = gender;
    }

    /** 
     * @return birthday 生日
     */
    public ZonedDateTime getBirthday() {
        return birthday;
    }

    /**
     * @param birthday 生日
     */
    public void setBirthday(ZonedDateTime birthday) {
        this.birthday = birthday;
    }

    /** 
     * @return last_login_time 最近一次登录时间
     */
    public ZonedDateTime getLastLoginTime() {
        return lastLoginTime;
    }

    /**
     * @param lastLoginTime 最近一次登录时间
     */
    public void setLastLoginTime(ZonedDateTime lastLoginTime) {
        this.lastLoginTime = lastLoginTime;
    }

    /** 
     * @return last_login_ip 最近一次登录IP地址
     */
    public String getLastLoginIp() {
        return lastLoginIp;
    }

    /**
     * @param lastLoginIp 最近一次登录IP地址
     */
    public void setLastLoginIp(String lastLoginIp) {
        this.lastLoginIp = lastLoginIp == null ? null : lastLoginIp.trim();
    }

    /** 
     * @return user_level 0 普通用户，1 VIP用户，2 高级VIP用户
     */
    public Byte getUserLevel() {
        return userLevel;
    }

    /**
     * @param userLevel 0 普通用户，1 VIP用户，2 高级VIP用户
     */
    public void setUserLevel(Byte userLevel) {
        this.userLevel = userLevel;
    }

    /** 
     * @return nickname 用户昵称或网络名称
     */
    public String getNickname() {
        return nickname;
    }

    /**
     * @param nickname 用户昵称或网络名称
     */
    public void setNickname(String nickname) {
        this.nickname = nickname == null ? null : nickname.trim();
    }

    /** 
     * @return mobile 用户手机号码
     */
    public String getMobile() {
        return mobile;
    }

    /**
     * @param mobile 用户手机号码
     */
    public void setMobile(String mobile) {
        this.mobile = mobile == null ? null : mobile.trim();
    }

    /** 
     * @return avatar 用户头像图片
     */
    public String getAvatar() {
        return avatar;
    }

    /**
     * @param avatar 用户头像图片
     */
    public void setAvatar(String avatar) {
        this.avatar = avatar == null ? null : avatar.trim();
    }

    /** 
     * @return weixin_openid 微信登录openid
     */
    public String getWeixinOpenid() {
        return weixinOpenid;
    }

    /**
     * @param weixinOpenid 微信登录openid
     */
    public void setWeixinOpenid(String weixinOpenid) {
        this.weixinOpenid = weixinOpenid == null ? null : weixinOpenid.trim();
    }

    /** 
     * @return session_key 微信登录会话KEY
     */
    public String getSessionKey() {
        return sessionKey;
    }

    /**
     * @param sessionKey 微信登录会话KEY
     */
    public void setSessionKey(String sessionKey) {
        this.sessionKey = sessionKey == null ? null : sessionKey.trim();
    }

    /** 
     * @return status 0 可用, 1 禁用, 2 注销
     */
    public Byte getStatus() {
        return status;
    }

    /**
     * @param status 0 可用, 1 禁用, 2 注销
     */
    public void setStatus(Byte status) {
        this.status = status;
    }

    /** 
     * @return add_time 创建时间
     */
    public ZonedDateTime getAddTime() {
        return addTime;
    }

    /**
     * @param addTime 创建时间
     */
    public void setAddTime(ZonedDateTime addTime) {
        this.addTime = addTime;
    }

    /** 
     * @return update_time 更新时间
     */
    public ZonedDateTime getUpdateTime() {
        return updateTime;
    }

    /**
     * @param updateTime 更新时间
     */
    public void setUpdateTime(ZonedDateTime updateTime) {
        this.updateTime = updateTime;
    }

    /** 
     * @return deleted 逻辑删除
     */
    public Boolean getDeleted() {
        return deleted;
    }

    /**
     * @param deleted 逻辑删除
     */
    public void setDeleted(Boolean deleted) {
        this.deleted = deleted;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        LitemallUser other = (LitemallUser) that;
        return (this.getId() == null ? other.getId() == null :
				 this.getId().equals(other.getId()))
            && (this.getUsername() == null ? other.getUsername() == null :
				 this.getUsername().equals(other.getUsername()))
            && (this.getPassword() == null ? other.getPassword() == null :
				 this.getPassword().equals(other.getPassword()))
            && (this.getGender() == null ? other.getGender() == null :
				 this.getGender().equals(other.getGender()))
            && (this.getBirthday() == null ? other.getBirthday() == null :
				 this.getBirthday().equals(other.getBirthday()))
            && (this.getLastLoginTime() == null ? other.getLastLoginTime() == null :
				 this.getLastLoginTime().equals(other.getLastLoginTime()))
            && (this.getLastLoginIp() == null ? other.getLastLoginIp() == null :
				 this.getLastLoginIp().equals(other.getLastLoginIp()))
            && (this.getUserLevel() == null ? other.getUserLevel() == null :
				 this.getUserLevel().equals(other.getUserLevel()))
            && (this.getNickname() == null ? other.getNickname() == null :
				 this.getNickname().equals(other.getNickname()))
            && (this.getMobile() == null ? other.getMobile() == null :
				 this.getMobile().equals(other.getMobile()))
            && (this.getAvatar() == null ? other.getAvatar() == null :
				 this.getAvatar().equals(other.getAvatar()))
            && (this.getWeixinOpenid() == null ? other.getWeixinOpenid() == null :
				 this.getWeixinOpenid().equals(other.getWeixinOpenid()))
            && (this.getSessionKey() == null ? other.getSessionKey() == null :
				 this.getSessionKey().equals(other.getSessionKey()))
            && (this.getStatus() == null ? other.getStatus() == null :
				 this.getStatus().equals(other.getStatus()))
            && (this.getAddTime() == null ? other.getAddTime() == null :
				 this.getAddTime().equals(other.getAddTime()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null :
				 this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getDeleted() == null ? other.getDeleted() == null :
				 this.getDeleted().equals(other.getDeleted()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getUsername() == null) ? 0 : getUsername().hashCode());
        result = prime * result + ((getPassword() == null) ? 0 : getPassword().hashCode());
        result = prime * result + ((getGender() == null) ? 0 : getGender().hashCode());
        result = prime * result + ((getBirthday() == null) ? 0 : getBirthday().hashCode());
        result = prime * result + ((getLastLoginTime() == null) ? 0 : getLastLoginTime().hashCode());
        result = prime * result + ((getLastLoginIp() == null) ? 0 : getLastLoginIp().hashCode());
        result = prime * result + ((getUserLevel() == null) ? 0 : getUserLevel().hashCode());
        result = prime * result + ((getNickname() == null) ? 0 : getNickname().hashCode());
        result = prime * result + ((getMobile() == null) ? 0 : getMobile().hashCode());
        result = prime * result + ((getAvatar() == null) ? 0 : getAvatar().hashCode());
        result = prime * result + ((getWeixinOpenid() == null) ? 0 : getWeixinOpenid().hashCode());
        result = prime * result + ((getSessionKey() == null) ? 0 : getSessionKey().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getAddTime() == null) ? 0 : getAddTime().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getDeleted() == null) ? 0 : getDeleted().hashCode());
        return result;
    }
}